package com.heima.stroke.handler.valuation;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class StartPriceValuation implements Valuation {
    private Valuation valuation;

    public StartPriceValuation(Valuation valuation) {
        this.valuation = valuation;
    }

    @Override
    public float calculation(float km) {
        // 基础价格由内部的 valuation 提供
        float basePrice = valuation.calculation(km);

        BigDecimal result;

        if (km > 3f) {
            // 超出部分按每公里 2.3 元计算
            BigDecimal base = BigDecimal.valueOf(basePrice);
            BigDecimal extraKm = BigDecimal.valueOf(km - 3f);
            BigDecimal rate = BigDecimal.valueOf(2.3f);
            result = base.add(extraKm.multiply(rate));
        } else {
            // 3公里以内直接返回基础价格
            result = BigDecimal.valueOf(basePrice);
        }

        // 四舍五入保留两位小数（到分）
        return result.setScale(2, RoundingMode.HALF_UP).floatValue();//先把计算结果result四舍五入保留 2 位小数（到分），再转换成 float 类型返回。
    }

}
